package GM.diagram.part;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import org.eclipse.gef.Tool;
import org.eclipse.gef.palette.PaletteContainer;
import org.eclipse.gef.palette.PaletteDrawer;
import org.eclipse.gef.palette.PaletteRoot;
import org.eclipse.gef.palette.ToolEntry;
import org.eclipse.gmf.runtime.diagram.ui.tools.UnspecifiedTypeConnectionTool;
import org.eclipse.gmf.runtime.diagram.ui.tools.UnspecifiedTypeCreationTool;
import org.eclipse.gmf.runtime.emf.type.core.IElementType;

import GM.diagram.providers.GMElementTypes;

/**
 * @generated
 */
public class GMPaletteFactory {

	/**
	 * @generated
	 */
	public void fillPalette(PaletteRoot paletteRoot) {
		paletteRoot.add(createNodes1Group());
		paletteRoot.add(createCompartments2Group());
		paletteRoot.add(createLinks3Group());
	}

	/**
	 * Creates "Nodes" palette tool group
	 * @generated
	 */
	private PaletteContainer createNodes1Group() {
		PaletteDrawer paletteContainer = new PaletteDrawer(
				Messages.Nodes1Group_title);
		paletteContainer.setId("createNodes1Group"); //$NON-NLS-1$
		paletteContainer
				.setSmallIcon(GMDiagramEditorPlugin
						.findImageDescriptor("/project.goal.edit/icons/full/obj16/Node.gif")); //$NON-NLS-1$
		paletteContainer
				.setLargeIcon(GMDiagramEditorPlugin
						.findImageDescriptor("/project.goal.edit/icons/full/obj16/Node.gif")); //$NON-NLS-1$
		paletteContainer.add(createAction1CreationTool());
		paletteContainer.add(createAdGoal2CreationTool());
		paletteContainer.add(createAgent3CreationTool());
		paletteContainer.add(createEntity4CreationTool());
		paletteContainer.add(createEvent5CreationTool());
		paletteContainer.add(createGoal6CreationTool());
		paletteContainer.add(createOperation7CreationTool());
		paletteContainer.add(createRefinementLink8CreationTool());
		return paletteContainer;
	}

	/**
	 * Creates "Compartments" palette tool group
	 * @generated
	 */
	private PaletteContainer createCompartments2Group() {
		PaletteDrawer paletteContainer = new PaletteDrawer(
				Messages.Compartments2Group_title);
		paletteContainer.setId("createCompartments2Group"); //$NON-NLS-1$
		paletteContainer
				.setSmallIcon(GMDiagramEditorPlugin
						.findImageDescriptor("/project.goal.edit/icons/full/obj16/Compartment.gif")); //$NON-NLS-1$
		paletteContainer
				.setLargeIcon(GMDiagramEditorPlugin
						.findImageDescriptor("/project.goal.edit/icons/full/obj16/Compartment.gif")); //$NON-NLS-1$
		paletteContainer.add(createDefinition1CreationTool());
		paletteContainer.add(createReference2CreationTool());
		paletteContainer.add(createEventParams3CreationTool());
		paletteContainer.add(createAttribute4CreationTool());
		paletteContainer.add(createTrigofAdGoal5CreationTool());
		paletteContainer.add(createConditionofAdGoal6CreationTool());
		paletteContainer.add(createDomPre7CreationTool());
		paletteContainer.add(createDomPost8CreationTool());
		paletteContainer.add(createReqPre9CreationTool());
		paletteContainer.add(createReqPost10CreationTool());
		paletteContainer.add(createTrigPre11CreationTool());
		paletteContainer.add(createState12CreationTool());
		paletteContainer.add(createMapping13CreationTool());
		return paletteContainer;
	}

	/**
	 * Creates "Links" palette tool group
	 * @generated
	 */
	private PaletteContainer createLinks3Group() {
		PaletteDrawer paletteContainer = new PaletteDrawer(
				Messages.Links3Group_title);
		paletteContainer.setId("createLinks3Group"); //$NON-NLS-1$
		paletteContainer
				.setSmallIcon(GMDiagramEditorPlugin
						.findImageDescriptor("/project.goal.edit/icons/full/obj16/Arrow.gif")); //$NON-NLS-1$
		paletteContainer
				.setLargeIcon(GMDiagramEditorPlugin
						.findImageDescriptor("/project.goal.edit/icons/full/obj16/Arrow.gif")); //$NON-NLS-1$
		paletteContainer.add(createGoaltoRefLink1CreationTool());
		paletteContainer.add(createRefLinktoGoal2CreationTool());
		paletteContainer.add(createGoaltoGoal3CreationTool());
		paletteContainer.add(createGoaltoOperation4CreationTool());
		paletteContainer.add(createAdGoaltoGoal5CreationTool());
		paletteContainer.add(createAgenttoOperation6CreationTool());
		paletteContainer.add(createAdGoaltoAction7CreationTool());
		paletteContainer.add(createReferenceType8CreationTool());
		paletteContainer.add(createActiontoParameters9CreationTool());
		paletteContainer.add(createContributionLink10CreationTool());
		return paletteContainer;
	}

	/**
	 * @generated
	 */
	private ToolEntry createAction1CreationTool() {
		NodeToolEntry entry = new NodeToolEntry(
				Messages.Action1CreationTool_title,
				Messages.Action1CreationTool_desc,
				Collections.singletonList(GMElementTypes.Action_2006));
		entry.setId("createAction1CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMElementTypes
				.getImageDescriptor(GMElementTypes.Action_2006));
		entry.setLargeIcon(entry.getSmallIcon());
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createAdGoal2CreationTool() {
		NodeToolEntry entry = new NodeToolEntry(
				Messages.AdGoal2CreationTool_title,
				Messages.AdGoal2CreationTool_desc,
				Collections.singletonList(GMElementTypes.AdGoal_2002));
		entry.setId("createAdGoal2CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMElementTypes
				.getImageDescriptor(GMElementTypes.AdGoal_2002));
		entry.setLargeIcon(entry.getSmallIcon());
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createAgent3CreationTool() {
		NodeToolEntry entry = new NodeToolEntry(
				Messages.Agent3CreationTool_title,
				Messages.Agent3CreationTool_desc,
				Collections.singletonList(GMElementTypes.Agent_2007));
		entry.setId("createAgent3CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMElementTypes
				.getImageDescriptor(GMElementTypes.Agent_2007));
		entry.setLargeIcon(entry.getSmallIcon());
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createEntity4CreationTool() {
		NodeToolEntry entry = new NodeToolEntry(
				Messages.Entity4CreationTool_title,
				Messages.Entity4CreationTool_desc,
				Collections.singletonList(GMElementTypes.Entity_2004));
		entry.setId("createEntity4CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMElementTypes
				.getImageDescriptor(GMElementTypes.Entity_2004));
		entry.setLargeIcon(entry.getSmallIcon());
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createEvent5CreationTool() {
		NodeToolEntry entry = new NodeToolEntry(
				Messages.Event5CreationTool_title,
				Messages.Event5CreationTool_desc,
				Collections.singletonList(GMElementTypes.Event_2005));
		entry.setId("createEvent5CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMElementTypes
				.getImageDescriptor(GMElementTypes.Event_2005));
		entry.setLargeIcon(entry.getSmallIcon());
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createGoal6CreationTool() {
		NodeToolEntry entry = new NodeToolEntry(
				Messages.Goal6CreationTool_title,
				Messages.Goal6CreationTool_desc,
				Collections.singletonList(GMElementTypes.Goal_2001));
		entry.setId("createGoal6CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMElementTypes
				.getImageDescriptor(GMElementTypes.Goal_2001));
		entry.setLargeIcon(entry.getSmallIcon());
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createOperation7CreationTool() {
		NodeToolEntry entry = new NodeToolEntry(
				Messages.Operation7CreationTool_title,
				Messages.Operation7CreationTool_desc,
				Collections.singletonList(GMElementTypes.Operation_2003));
		entry.setId("createOperation7CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMElementTypes
				.getImageDescriptor(GMElementTypes.Operation_2003));
		entry.setLargeIcon(entry.getSmallIcon());
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createRefinementLink8CreationTool() {
		NodeToolEntry entry = new NodeToolEntry(
				Messages.RefinementLink8CreationTool_title,
				Messages.RefinementLink8CreationTool_desc,
				Collections.singletonList(GMElementTypes.RefinementLink_2008));
		entry.setId("createRefinementLink8CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMElementTypes
				.getImageDescriptor(GMElementTypes.RefinementLink_2008));
		entry.setLargeIcon(entry.getSmallIcon());
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createDefinition1CreationTool() {
		NodeToolEntry entry = new NodeToolEntry(
				Messages.Definition1CreationTool_title,
				Messages.Definition1CreationTool_desc,
				Collections.singletonList(GMElementTypes.Definition_3031));
		entry.setId("createDefinition1CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/Definition.gif")); //$NON-NLS-1$
		entry.setLargeIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/Definition.gif")); //$NON-NLS-1$
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createReference2CreationTool() {
		NodeToolEntry entry = new NodeToolEntry(
				Messages.Reference2CreationTool_title,
				Messages.Reference2CreationTool_desc,
				Collections.singletonList(GMElementTypes.Reference_3040));
		entry.setId("createReference2CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMElementTypes
				.getImageDescriptor(GMElementTypes.Reference_3040));
		entry.setLargeIcon(entry.getSmallIcon());
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createEventParams3CreationTool() {
		NodeToolEntry entry = new NodeToolEntry(
				Messages.EventParams3CreationTool_title,
				Messages.EventParams3CreationTool_desc,
				Collections.singletonList(GMElementTypes.Reference_3043));
		entry.setId("createEventParams3CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMElementTypes
				.getImageDescriptor(GMElementTypes.Reference_3043));
		entry.setLargeIcon(entry.getSmallIcon());
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createAttribute4CreationTool() {
		ArrayList<IElementType> types = new ArrayList<IElementType>(2);
		types.add(GMElementTypes.Attribute_3039);
		types.add(GMElementTypes.Attribute_3042);
		NodeToolEntry entry = new NodeToolEntry(
				Messages.Attribute4CreationTool_title,
				Messages.Attribute4CreationTool_desc, types);
		entry.setId("createAttribute4CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMElementTypes
				.getImageDescriptor(GMElementTypes.Attribute_3039));
		entry.setLargeIcon(entry.getSmallIcon());
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createTrigofAdGoal5CreationTool() {
		NodeToolEntry entry = new NodeToolEntry(
				Messages.TrigofAdGoal5CreationTool_title,
				Messages.TrigofAdGoal5CreationTool_desc,
				Collections.singletonList(GMElementTypes.Definition_3033));
		entry.setId("createTrigofAdGoal5CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/Trig.gif")); //$NON-NLS-1$
		entry.setLargeIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/Trig.gif")); //$NON-NLS-1$
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createConditionofAdGoal6CreationTool() {
		NodeToolEntry entry = new NodeToolEntry(
				Messages.ConditionofAdGoal6CreationTool_title,
				Messages.ConditionofAdGoal6CreationTool_desc,
				Collections.singletonList(GMElementTypes.Definition_3032));
		entry.setId("createConditionofAdGoal6CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/Cond.gif")); //$NON-NLS-1$
		entry.setLargeIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/Cond.gif")); //$NON-NLS-1$
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createDomPre7CreationTool() {
		NodeToolEntry entry = new NodeToolEntry(
				Messages.DomPre7CreationTool_title,
				Messages.DomPre7CreationTool_desc,
				Collections.singletonList(GMElementTypes.Definition_3035));
		entry.setId("createDomPre7CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/Dompre.gif")); //$NON-NLS-1$
		entry.setLargeIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/Dompre.gif")); //$NON-NLS-1$
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createDomPost8CreationTool() {
		NodeToolEntry entry = new NodeToolEntry(
				Messages.DomPost8CreationTool_title,
				Messages.DomPost8CreationTool_desc,
				Collections.singletonList(GMElementTypes.Definition_3034));
		entry.setId("createDomPost8CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/Dompost.gif")); //$NON-NLS-1$
		entry.setLargeIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/Dompost.gif")); //$NON-NLS-1$
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createReqPre9CreationTool() {
		NodeToolEntry entry = new NodeToolEntry(
				Messages.ReqPre9CreationTool_title,
				Messages.ReqPre9CreationTool_desc,
				Collections.singletonList(GMElementTypes.Definition_3036));
		entry.setId("createReqPre9CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/Reqpre.gif")); //$NON-NLS-1$
		entry.setLargeIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/Reqpre.gif")); //$NON-NLS-1$
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createReqPost10CreationTool() {
		NodeToolEntry entry = new NodeToolEntry(
				Messages.ReqPost10CreationTool_title,
				Messages.ReqPost10CreationTool_desc,
				Collections.singletonList(GMElementTypes.Definition_3038));
		entry.setId("createReqPost10CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/Reqpost.gif")); //$NON-NLS-1$
		entry.setLargeIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/Reqpost.gif")); //$NON-NLS-1$
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createTrigPre11CreationTool() {
		NodeToolEntry entry = new NodeToolEntry(
				Messages.TrigPre11CreationTool_title,
				Messages.TrigPre11CreationTool_desc,
				Collections.singletonList(GMElementTypes.Definition_3037));
		entry.setId("createTrigPre11CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/Trigpre.gif")); //$NON-NLS-1$
		entry.setLargeIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/Trigpre.gif")); //$NON-NLS-1$
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createState12CreationTool() {
		NodeToolEntry entry = new NodeToolEntry(
				Messages.State12CreationTool_title,
				Messages.State12CreationTool_desc,
				Collections.singletonList(GMElementTypes.State_3041));
		entry.setId("createState12CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMElementTypes
				.getImageDescriptor(GMElementTypes.State_3041));
		entry.setLargeIcon(entry.getSmallIcon());
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createMapping13CreationTool() {
		ArrayList<IElementType> types = new ArrayList<IElementType>(8);
		types.add(GMElementTypes.Mapping_3044);
		types.add(GMElementTypes.Mapping_3045);
		types.add(GMElementTypes.Mapping_3046);
		types.add(GMElementTypes.Mapping_3047);
		types.add(GMElementTypes.Mapping_3048);
		types.add(GMElementTypes.Mapping_3049);
		types.add(GMElementTypes.Mapping_3050);
		types.add(GMElementTypes.Mapping_3051);
		NodeToolEntry entry = new NodeToolEntry(
				Messages.Mapping13CreationTool_title,
				Messages.Mapping13CreationTool_desc, types);
		entry.setId("createMapping13CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMElementTypes
				.getImageDescriptor(GMElementTypes.Mapping_3044));
		entry.setLargeIcon(entry.getSmallIcon());
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createGoaltoRefLink1CreationTool() {
		LinkToolEntry entry = new LinkToolEntry(
				Messages.GoaltoRefLink1CreationTool_title,
				Messages.GoaltoRefLink1CreationTool_desc,
				Collections.singletonList(GMElementTypes.GoalRef_4003));
		entry.setId("createGoaltoRefLink1CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/GoalRef.gif")); //$NON-NLS-1$
		entry.setLargeIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/GoalRef.gif")); //$NON-NLS-1$
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createRefLinktoGoal2CreationTool() {
		LinkToolEntry entry = new LinkToolEntry(
				Messages.RefLinktoGoal2CreationTool_title,
				Messages.RefLinktoGoal2CreationTool_desc,
				Collections
						.singletonList(GMElementTypes.RefinementLinkTarget_4004));
		entry.setId("createRefLinktoGoal2CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/RefinementTarget.gif")); //$NON-NLS-1$
		entry.setLargeIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/RefinementTarget.gif")); //$NON-NLS-1$
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createGoaltoGoal3CreationTool() {
		ToolEntry entry = new ToolEntry(Messages.GoaltoGoal3CreationTool_title,
				Messages.GoaltoGoal3CreationTool_desc, null, null) {
		};
		entry.setId("createGoaltoGoal3CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/ContributionLink.gif")); //$NON-NLS-1$
		entry.setLargeIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/ContributionLink.gif")); //$NON-NLS-1$
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createGoaltoOperation4CreationTool() {
		LinkToolEntry entry = new LinkToolEntry(
				Messages.GoaltoOperation4CreationTool_title,
				Messages.GoaltoOperation4CreationTool_desc,
				Collections.singletonList(GMElementTypes.GoalOperat_4005));
		entry.setId("createGoaltoOperation4CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/GoalOperat.gif")); //$NON-NLS-1$
		entry.setLargeIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/GoalOperat.gif")); //$NON-NLS-1$
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createAdGoaltoGoal5CreationTool() {
		LinkToolEntry entry = new LinkToolEntry(
				Messages.AdGoaltoGoal5CreationTool_title,
				Messages.AdGoaltoGoal5CreationTool_desc,
				Collections.singletonList(GMElementTypes.AdGoalHelp_4001));
		entry.setId("createAdGoaltoGoal5CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/AdGoalHelp.gif")); //$NON-NLS-1$
		entry.setLargeIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/AdGoalHelp.gif")); //$NON-NLS-1$
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createAgenttoOperation6CreationTool() {
		LinkToolEntry entry = new LinkToolEntry(
				Messages.AgenttoOperation6CreationTool_title,
				Messages.AgenttoOperation6CreationTool_desc,
				Collections.singletonList(GMElementTypes.AgentOperat_4002));
		entry.setId("createAgenttoOperation6CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/AgentOperat.gif")); //$NON-NLS-1$
		entry.setLargeIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/AgentOperat.gif")); //$NON-NLS-1$
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createAdGoaltoAction7CreationTool() {
		LinkToolEntry entry = new LinkToolEntry(
				Messages.AdGoaltoAction7CreationTool_title,
				Messages.AdGoaltoAction7CreationTool_desc,
				Collections.singletonList(GMElementTypes.AdGoalActions_4006));
		entry.setId("createAdGoaltoAction7CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/AdGoalAction.gif")); //$NON-NLS-1$
		entry.setLargeIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/AdGoalAction.gif")); //$NON-NLS-1$
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createReferenceType8CreationTool() {
		LinkToolEntry entry = new LinkToolEntry(
				Messages.ReferenceType8CreationTool_title,
				Messages.ReferenceType8CreationTool_desc,
				Collections.singletonList(GMElementTypes.ReferenceType_4011));
		entry.setId("createReferenceType8CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/AdGoalPar.gif")); //$NON-NLS-1$
		entry.setLargeIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/AdGoalPar.gif")); //$NON-NLS-1$
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createActiontoParameters9CreationTool() {
		ToolEntry entry = new ToolEntry(
				Messages.ActiontoParameters9CreationTool_title,
				Messages.ActiontoParameters9CreationTool_desc, null, null) {
		};
		entry.setId("createActiontoParameters9CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/ActionPar.gif")); //$NON-NLS-1$
		entry.setLargeIcon(GMDiagramEditorPlugin
				.findImageDescriptor("/project.goal.edit/icons/full/obj16/ActionPar.gif")); //$NON-NLS-1$
		return entry;
	}

	/**
	 * @generated
	 */
	private ToolEntry createContributionLink10CreationTool() {
		LinkToolEntry entry = new LinkToolEntry(
				Messages.ContributionLink10CreationTool_title,
				Messages.ContributionLink10CreationTool_desc,
				Collections.singletonList(GMElementTypes.ContributionLink_4007));
		entry.setId("createContributionLink10CreationTool"); //$NON-NLS-1$
		entry.setSmallIcon(GMElementTypes
				.getImageDescriptor(GMElementTypes.ContributionLink_4007));
		entry.setLargeIcon(entry.getSmallIcon());
		return entry;
	}

	/**
	 * @generated
	 */
	private static class NodeToolEntry extends ToolEntry {

		/**
		 * @generated
		 */
		private final List<IElementType> elementTypes;

		/**
		 * @generated
		 */
		private NodeToolEntry(String title, String description,
				List<IElementType> elementTypes) {
			super(title, description, null, null);
			this.elementTypes = elementTypes;
		}

		/**
		 * @generated
		 */
		public Tool createTool() {
			Tool tool = new UnspecifiedTypeCreationTool(elementTypes);
			tool.setProperties(getToolProperties());
			return tool;
		}
	}

	/**
	 * @generated
	 */
	private static class LinkToolEntry extends ToolEntry {

		/**
		 * @generated
		 */
		private final List<IElementType> relationshipTypes;

		/**
		 * @generated
		 */
		private LinkToolEntry(String title, String description,
				List<IElementType> relationshipTypes) {
			super(title, description, null, null);
			this.relationshipTypes = relationshipTypes;
		}

		/**
		 * @generated
		 */
		public Tool createTool() {
			Tool tool = new UnspecifiedTypeConnectionTool(relationshipTypes);
			tool.setProperties(getToolProperties());
			return tool;
		}
	}
}
